package QuintaAula;

import java.util.Scanner;

public class Base2 {
	
	public static double mult1(double n, double p){
		return  (n * (Math.pow(2, p)));
	}
	
	public static double mult2(double n, double p) {
		double resultado = 0;
		double aux = n;
		if(n < 0)
			aux = n * -1;
		
		for(int i = 0; i < aux; i++){
			resultado += Math.pow(2, p);
		}
		if(n < 0)
			resultado = resultado * -1;
		return resultado;
	}
	
	public static double mult3(int n, int p){
		if(p < 0){
			return n >> p * -1;
		}
		return n << p;
	}
	
	public static void main(String[] args) {
		String[] entradas;
		Scanner in = new Scanner(System.in);
		double n, p, resultado;
		long inicio, fim;
		
		while(true){
			entradas = in.nextLine().split(" ");
			
			if(entradas.length == 1 && entradas[0].equals("0")){
				break;
			}			
			
			if(entradas.length == 2){
				
				n = Double.parseDouble(entradas[0]);
				p = Double.parseDouble(entradas[1]);
				
				System.out.println("n = "+ n +", p = " +p);
				
				inicio = System.nanoTime();
				resultado = mult1(n, p);
				fim = System.nanoTime();
				System.out.println("Metodo 1: resultado = " + resultado
						+ ", tempo = " + (fim - inicio));
				
				inicio = System.nanoTime();
				resultado = mult2(n, p);
				fim = System.nanoTime();
				System.out.println("Metodo 2: resultado = " + resultado
						+ ", tempo = " + (fim - inicio));

				inicio = System.nanoTime();
				resultado = mult3((int)n,(int)p);
				fim = System.nanoTime();
				System.out.println("Metodo 3: resultado = " + resultado
						+ ", tempo = " + (fim - inicio) + "\n");
			}else{
				System.err.println("Entrada Invalida");
				System.exit(1);
			}
		}
		
	}

}
